using System;
using System.Collections.Generic;
using System.Text;
using THSLib;using THSERP.BaseProvider;

namespace THSERP.Modules.Project
{
    public class ProjectPhaseItemsEntity : ERPModuleItemsEntity
    {
        #region Variables
        protected int _pMProjectPhaseID;
        protected String _aAStatus = BusinessObject.DefaultAAStatus;
        protected String _pMProjectPhaseNo = String.Empty;
        protected String _pMProjectPhaseName = String.Empty;
        protected String _pMProjectPhaseDesc = String.Empty;
        protected String _pMProjectPhaseRemark = String.Empty;
        protected int _fK_PMProjectID;
        protected int _fK_PMPhaseTypeID;
        protected String _pMProjectPhaseStatus = BusinessObject.DefaultStatus;
        protected DateTime _pMProjectPhaseEstimatedStartDate = BusinessObject.DefaultDate;
        protected DateTime _pMProjectPhaseActualStartDate = BusinessObject.DefaultDate;
        protected DateTime _pMProjectPhaseEstimatedEndDate = DateTime.MaxValue;
        protected DateTime _pMProjectPhaseActualEndDate = DateTime.MaxValue;
        protected int _pMProjectPhaseEstimatedTotalDays;
        protected int _pMProjectPhaseActualTotalDays;
        protected int _pMProjectPhaseEstimatedTotalHours;
        protected int _pMProjectPhaseActualTotalHours;
        protected int _pMProjectPhaseEstimatedExtendDays;
        protected int _pMProjectPhaseActualExtendDays;
        protected int _pMProjectPhaseEstimatedExtendHours;
        protected int _pMProjectPhaseActualExtendHours;
        protected double _pMProjectPhaseEstimatedTotalCost;
        protected double _pMProjectPhaseActualTotalCost;
        protected int _fK_HREmployeeID;
        protected String _pMProjectPhaseOwnerName = String.Empty;
        protected String _pMProjectPhaseOwnerTel1 = String.Empty;
        protected String _pMProjectPhaseOwnerTel2 = String.Empty;
        protected String _pMProjectPhaseOwnerTel3 = String.Empty;
        protected String _pMProjectPhaseOwnerEmail = String.Empty;
        protected String _pMProjectPhaseOwnerFax = String.Empty;
        protected String _pMProjectPhaseOwnerAddressStreet = String.Empty;
        protected String _pMProjectPhaseOwnerAddressLine1 = String.Empty;
        protected String _pMProjectPhaseOwnerAddressLine2 = String.Empty;
        protected String _pMProjectPhaseOwnerAddressLine3 = String.Empty;
        protected String _pMProjectPhaseOwnerAddressCity = String.Empty;
        protected String _pMProjectPhaseOwnerAddressPostalCode = String.Empty;
        protected String _pMProjectPhaseOwnerAddressStateProvince = String.Empty;
        protected String _pMProjectPhaseOwnerAddressZipCode = String.Empty;
        protected String _pMProjectPhaseOwnerAddressCountry = String.Empty;
        #endregion

        #region Public properties
        public int PMProjectPhaseID
        {
            get { return _pMProjectPhaseID; }
            set
            {
                if (value != this._pMProjectPhaseID)
                {
                    _pMProjectPhaseID = value;
                    //NotifyChanged("PMProjectPhaseID");
                }
            }
        }
        public String AAStatus
        {
            get { return _aAStatus; }
            set
            {
                if (value != this._aAStatus)
                {
                    _aAStatus = value;
                    //NotifyChanged("AAStatus");
                }
            }
        }
        public String PMProjectPhaseNo
        {
            get { return _pMProjectPhaseNo; }
            set
            {
                if (value != this._pMProjectPhaseNo)
                {
                    _pMProjectPhaseNo = value;
                    //NotifyChanged("PMProjectPhaseNo");
                }
            }
        }
        public String PMProjectPhaseName
        {
            get { return _pMProjectPhaseName; }
            set
            {
                if (value != this._pMProjectPhaseName)
                {
                    _pMProjectPhaseName = value;
                    //NotifyChanged("PMProjectPhaseName");
                }
            }
        }
        public String PMProjectPhaseDesc
        {
            get { return _pMProjectPhaseDesc; }
            set
            {
                if (value != this._pMProjectPhaseDesc)
                {
                    _pMProjectPhaseDesc = value;
                    //NotifyChanged("PMProjectPhaseDesc");
                }
            }
        }
        public String PMProjectPhaseRemark
        {
            get { return _pMProjectPhaseRemark; }
            set
            {
                if (value != this._pMProjectPhaseRemark)
                {
                    _pMProjectPhaseRemark = value;
                    //NotifyChanged("PMProjectPhaseRemark");
                }
            }
        }
        public int FK_PMProjectID
        {
            get { return _fK_PMProjectID; }
            set
            {
                if (value != this._fK_PMProjectID)
                {
                    _fK_PMProjectID = value;
                    //NotifyChanged("FK_PMProjectID");
                }
            }
        }
        public int FK_PMPhaseTypeID
        {
            get { return _fK_PMPhaseTypeID; }
            set
            {
                if (value != this._fK_PMPhaseTypeID)
                {
                    _fK_PMPhaseTypeID = value;
                    //NotifyChanged("FK_PMPhaseTypeID");
                }
            }
        }
        public String PMProjectPhaseStatus
        {
            get { return _pMProjectPhaseStatus; }
            set
            {
                if (value != this._pMProjectPhaseStatus)
                {
                    _pMProjectPhaseStatus = value;
                    //NotifyChanged("PMProjectPhaseStatus");
                }
            }
        }
        public DateTime PMProjectPhaseEstimatedStartDate
        {
            get { return _pMProjectPhaseEstimatedStartDate; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedStartDate)
                {
                    _pMProjectPhaseEstimatedStartDate = value;
                    //NotifyChanged("PMProjectPhaseEstimatedStartDate");
                }
            }
        }
        public DateTime PMProjectPhaseActualStartDate
        {
            get { return _pMProjectPhaseActualStartDate; }
            set
            {
                if (value != this._pMProjectPhaseActualStartDate)
                {
                    _pMProjectPhaseActualStartDate = value;
                    //NotifyChanged("PMProjectPhaseActualStartDate");
                }
            }
        }
        public DateTime PMProjectPhaseEstimatedEndDate
        {
            get { return _pMProjectPhaseEstimatedEndDate; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedEndDate)
                {
                    _pMProjectPhaseEstimatedEndDate = value;
                    //NotifyChanged("PMProjectPhaseEstimatedEndDate");
                }
            }
        }
        public DateTime PMProjectPhaseActualEndDate
        {
            get { return _pMProjectPhaseActualEndDate; }
            set
            {
                if (value != this._pMProjectPhaseActualEndDate)
                {
                    _pMProjectPhaseActualEndDate = value;
                    //NotifyChanged("PMProjectPhaseActualEndDate");
                }
            }
        }
        public int PMProjectPhaseEstimatedTotalDays
        {
            get { return _pMProjectPhaseEstimatedTotalDays; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedTotalDays)
                {
                    _pMProjectPhaseEstimatedTotalDays = value;
                    //NotifyChanged("PMProjectPhaseEstimatedTotalDays");
                }
            }
        }
        public int PMProjectPhaseActualTotalDays
        {
            get { return _pMProjectPhaseActualTotalDays; }
            set
            {
                if (value != this._pMProjectPhaseActualTotalDays)
                {
                    _pMProjectPhaseActualTotalDays = value;
                    //NotifyChanged("PMProjectPhaseActualTotalDays");
                }
            }
        }
        public int PMProjectPhaseEstimatedTotalHours
        {
            get { return _pMProjectPhaseEstimatedTotalHours; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedTotalHours)
                {
                    _pMProjectPhaseEstimatedTotalHours = value;
                    //NotifyChanged("PMProjectPhaseEstimatedTotalHours");
                }
            }
        }
        public int PMProjectPhaseActualTotalHours
        {
            get { return _pMProjectPhaseActualTotalHours; }
            set
            {
                if (value != this._pMProjectPhaseActualTotalHours)
                {
                    _pMProjectPhaseActualTotalHours = value;
                    //NotifyChanged("PMProjectPhaseActualTotalHours");
                }
            }
        }
        public int PMProjectPhaseEstimatedExtendDays
        {
            get { return _pMProjectPhaseEstimatedExtendDays; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedExtendDays)
                {
                    _pMProjectPhaseEstimatedExtendDays = value;
                    //NotifyChanged("PMProjectPhaseEstimatedExtendDays");
                }
            }
        }
        public int PMProjectPhaseActualExtendDays
        {
            get { return _pMProjectPhaseActualExtendDays; }
            set
            {
                if (value != this._pMProjectPhaseActualExtendDays)
                {
                    _pMProjectPhaseActualExtendDays = value;
                    //NotifyChanged("PMProjectPhaseActualExtendDays");
                }
            }
        }
        public int PMProjectPhaseEstimatedExtendHours
        {
            get { return _pMProjectPhaseEstimatedExtendHours; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedExtendHours)
                {
                    _pMProjectPhaseEstimatedExtendHours = value;
                    //NotifyChanged("PMProjectPhaseEstimatedExtendHours");
                }
            }
        }
        public int PMProjectPhaseActualExtendHours
        {
            get { return _pMProjectPhaseActualExtendHours; }
            set
            {
                if (value != this._pMProjectPhaseActualExtendHours)
                {
                    _pMProjectPhaseActualExtendHours = value;
                    //NotifyChanged("PMProjectPhaseActualExtendHours");
                }
            }
        }
        public double PMProjectPhaseEstimatedTotalCost
        {
            get { return _pMProjectPhaseEstimatedTotalCost; }
            set
            {
                if (value != this._pMProjectPhaseEstimatedTotalCost)
                {
                    _pMProjectPhaseEstimatedTotalCost = value;
                    //NotifyChanged("PMProjectPhaseEstimatedTotalCost");
                }
            }
        }
        public double PMProjectPhaseActualTotalCost
        {
            get { return _pMProjectPhaseActualTotalCost; }
            set
            {
                if (value != this._pMProjectPhaseActualTotalCost)
                {
                    _pMProjectPhaseActualTotalCost = value;
                    //NotifyChanged("PMProjectPhaseActualTotalCost");
                }
            }
        }
        public int FK_HREmployeeID
        {
            get { return _fK_HREmployeeID; }
            set
            {
                if (value != this._fK_HREmployeeID)
                {
                    _fK_HREmployeeID = value;
                    //NotifyChanged("FK_HREmployeeID");
                }
            }
        }
        public String PMProjectPhaseOwnerName
        {
            get { return _pMProjectPhaseOwnerName; }
            set
            {
                if (value != this._pMProjectPhaseOwnerName)
                {
                    _pMProjectPhaseOwnerName = value;
                    //NotifyChanged("PMProjectPhaseOwnerName");
                }
            }
        }
        public String PMProjectPhaseOwnerTel1
        {
            get { return _pMProjectPhaseOwnerTel1; }
            set
            {
                if (value != this._pMProjectPhaseOwnerTel1)
                {
                    _pMProjectPhaseOwnerTel1 = value;
                    //NotifyChanged("PMProjectPhaseOwnerTel1");
                }
            }
        }
        public String PMProjectPhaseOwnerTel2
        {
            get { return _pMProjectPhaseOwnerTel2; }
            set
            {
                if (value != this._pMProjectPhaseOwnerTel2)
                {
                    _pMProjectPhaseOwnerTel2 = value;
                    //NotifyChanged("PMProjectPhaseOwnerTel2");
                }
            }
        }
        public String PMProjectPhaseOwnerTel3
        {
            get { return _pMProjectPhaseOwnerTel3; }
            set
            {
                if (value != this._pMProjectPhaseOwnerTel3)
                {
                    _pMProjectPhaseOwnerTel3 = value;
                    //NotifyChanged("PMProjectPhaseOwnerTel3");
                }
            }
        }
        public String PMProjectPhaseOwnerEmail
        {
            get { return _pMProjectPhaseOwnerEmail; }
            set
            {
                if (value != this._pMProjectPhaseOwnerEmail)
                {
                    _pMProjectPhaseOwnerEmail = value;
                    //NotifyChanged("PMProjectPhaseOwnerEmail");
                }
            }
        }
        public String PMProjectPhaseOwnerFax
        {
            get { return _pMProjectPhaseOwnerFax; }
            set
            {
                if (value != this._pMProjectPhaseOwnerFax)
                {
                    _pMProjectPhaseOwnerFax = value;
                    //NotifyChanged("PMProjectPhaseOwnerFax");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressStreet
        {
            get { return _pMProjectPhaseOwnerAddressStreet; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressStreet)
                {
                    _pMProjectPhaseOwnerAddressStreet = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressStreet");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressLine1
        {
            get { return _pMProjectPhaseOwnerAddressLine1; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressLine1)
                {
                    _pMProjectPhaseOwnerAddressLine1 = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressLine1");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressLine2
        {
            get { return _pMProjectPhaseOwnerAddressLine2; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressLine2)
                {
                    _pMProjectPhaseOwnerAddressLine2 = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressLine2");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressLine3
        {
            get { return _pMProjectPhaseOwnerAddressLine3; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressLine3)
                {
                    _pMProjectPhaseOwnerAddressLine3 = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressLine3");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressCity
        {
            get { return _pMProjectPhaseOwnerAddressCity; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressCity)
                {
                    _pMProjectPhaseOwnerAddressCity = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressCity");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressPostalCode
        {
            get { return _pMProjectPhaseOwnerAddressPostalCode; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressPostalCode)
                {
                    _pMProjectPhaseOwnerAddressPostalCode = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressPostalCode");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressStateProvince
        {
            get { return _pMProjectPhaseOwnerAddressStateProvince; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressStateProvince)
                {
                    _pMProjectPhaseOwnerAddressStateProvince = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressStateProvince");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressZipCode
        {
            get { return _pMProjectPhaseOwnerAddressZipCode; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressZipCode)
                {
                    _pMProjectPhaseOwnerAddressZipCode = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressZipCode");
                }
            }
        }
        public String PMProjectPhaseOwnerAddressCountry
        {
            get { return _pMProjectPhaseOwnerAddressCountry; }
            set
            {
                if (value != this._pMProjectPhaseOwnerAddressCountry)
                {
                    _pMProjectPhaseOwnerAddressCountry = value;
                    //NotifyChanged("PMProjectPhaseOwnerAddressCountry");
                }
            }
        }
        #endregion

        //Extra
        private THSList<PMProjectPhaseResourcesInfo> _pMProjectPhaseResourcesList;

        public THSList<PMProjectPhaseResourcesInfo> PMProjectPhaseResourcesList
        {
            get
            {
                return _pMProjectPhaseResourcesList;
            }
            set
            {
                _pMProjectPhaseResourcesList = value;
            }
        }
    }
}
